package com.annual.system.service;

import com.annual.system.domain.Order;
import com.annual.system.dto.enterpriseBusiness.ResAppPlanOrderDto;
import com.annual.system.dto.order.ReqOrderPayListDto;
import com.annual.system.dto.order.ResOrderPayListDto;
import com.annual.system.dto.order.ResOrderRefundListDto;
import com.baomidou.mybatisplus.extension.service.IService;
import com.sun.org.apache.xpath.internal.operations.Or;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 订单表(二期新增)【5.0】（如果是续费需同时更新t_user表中“学时”、“到期时间”字段） 服务类
 * </p>
 *
 * @author ywb
 * @since 2024-12-02
 */
public interface IOrderService extends IService<Order> {

    /**
     * 修改订单状态
     * @param outTradeNo
     * @param status
     */
    void updateOrderstatus(String outTradeNo,Integer status);

    /**
     * 下单
     * @param enterpriseBusinessId 业务id
     * @return
     */
    Map<String,Object> placeOrder(Long enterpriseBusinessId);

    /**
     * 微信支付回调
     * @param map
     * @return
     */
    boolean callback(Map<String, String> map);

    /**
     * 获取业务最后一个订单
     * @param enterpriseBusinessId
     * @return
     */
    Order getLastOrder(Long enterpriseBusinessId);

    /**
     * 支付订单列表
     * @param req
     * @return
     */
    List<ResOrderPayListDto> payList(ReqOrderPayListDto req);

    /**
     * 获取状态名称
     * @param status
     * @return
     */
    String getStatusName(Object status);

    /**
     * 去退款
     * @param orderId
     */
    void refund(Long orderId);

    /**
     * 退款列表
     * @param req
     * @return
     */
    List<ResOrderRefundListDto> refundList(ReqOrderPayListDto req);
}
